import request from '../utils/request';

/**
 * 通用接口
 */
export default {
  /**
   * 上传文件
   * @param file 文件对象
   * @param type 文件类型（可选）
   */
  uploadFile(file: File, type?: string) {
    const formData = new FormData();
    formData.append('file', file);
    if (type) {
      formData.append('type', type);
    }
    return request.post('/api/common/upload', formData, {
      header: {
        'Content-Type': 'multipart/form-data',
      },
    });
  },

  /**
   * 获取系统配置
   */
  getConfig() {
    return request.get('/api/common/config');
  },

  /**
   * 获取OSS上传配置
   */
  getOssConfig() {
    return request.get('/api/common/oss-config');
  },

  /**
   * 获取微信JSSDK配置
   * @param url 当前页面URL
   */
  getWxConfig(url: string) {
    return request.get('/api/common/wx-config', { url });
  },

  /**
   * 获取地区列表
   * @param parentId 父级ID
   */
  getRegionList(parentId?: string | number) {
    return request.get('/api/common/region', { parentId });
  },

  /**
   * 发送短信验证码
   * @param phone 手机号
   * @param type 验证码类型
   */
  sendSmsCode(phone: string, type: 'login' | 'register' | 'reset') {
    return request.post('/api/common/sms-code', { phone, type });
  },

  /**
   * 验证短信验证码
   * @param phone 手机号
   * @param code 验证码
   * @param type 验证码类型
   */
  verifySmsCode(phone: string, code: string, type: 'login' | 'register' | 'reset') {
    return request.post('/api/common/verify-code', { phone, code, type });
  },

  /**
   * 获取APP版本信息
   */
  getAppVersion() {
    return request.get('/api/common/app-version');
  },

  /**
   * 意见反馈
   * @param data 反馈信息
   */
  feedback(data: {
    type: string;
    content: string;
    contact?: string;
    images?: string[];
  }) {
    return request.post('/api/common/feedback', data);
  },

  /**
   * 获取协议内容
   * @param type 协议类型
   */
  getAgreement(type: 'user' | 'privacy' | 'service') {
    return request.get('/api/common/agreement', { type });
  },
};